#ifndef GAMEWIDGET_H
#define GAMEWIDGET_H

#include <QGLWidget>

class KeyManager;
class Game;
class StateManager;
class PaintManager;

class GameWidget : public QGLWidget
{
    Q_OBJECT
public:
    explicit GameWidget(bool isServer, QString addr = "", quint16 port = 0, QWidget *parent = 0);
    ~GameWidget();

    //void paintEvent(QPaintEvent *);

    void keyPressEvent(QKeyEvent *);
    void keyReleaseEvent(QKeyEvent *);

signals:

protected:
    void initializeGL();
    void paintGL();
    void resizeGL(int w, int h);

public slots:

private:
    KeyManager *myKeyManager;
    StateManager *myStateManager;
    //PaintManager *myPaintManager;

    double zoomFactor;
};

#endif // GAMEWIDGET_H
